package com.itheima.d1_byteio;

import java.io.FileInputStream;

//目标：掌握使用文件字节输入流一次读完全部字节
public class Demo03 {
    public static void main(String[] args) throws Exception {
        /**
         * 方式1：自己定义一个字节数组与文件的大小一样大，然后使用读取字节数组的方法，一次性读取完成
         * 方式2：官方为字节输入流InputStream提供了如下API可以直接把文件的全部数据读取到一个字节数组中
         *      byte[] readAllBytes()：直接将当前字节输入流对应的文件对象的字节数据装到一个字节数组返回
         *
         * 需求：使用一次读取所有字节的方式，读取a.txt文件中的内容
         */
        //方式1
        //1.1 创建FileInputStream对象，定位a.txt文件
        FileInputStream fis = new FileInputStream("day12\\a.txt");

        //1.2 获取a.txt文件的大小，创建一个字节数组，大小和文件一样
        //File file = new File("day09-io\\a.txt");
        //int length = (int) file.length();
        //byte[] bys = new byte[length];

        //1.3 调用read一次读取一个字节数组。由于是一次读完，刚好存满字节数组，所以也不需要接收返回值
        //fis.read(bys);

        //方式2：调用readAllBytes方法，直接将文件中所有字节数据返回到一个字节数组中
        byte[] bys = fis.readAllBytes();

        //解码整个字节数组
        String str = new String(bys);
        System.out.println(str);
    }
}
